SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_PROV_I02]  
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : OFISIS                --*/      
/*---Sistema              : Tesoreria                  --*/      
/*---M©dulo               : Empresa                    --*/      
/*---Programa             : Grabaci©n Documentos       --*/      
/*                          Generadas x Letras         --*/      
/*                          por Canje                  --*/       
/*---Script               : tccanj_p.sql               --*/      
/*---Nombre SP            : SP_TCCANJ_PROV_I02         --*/      
/*---Desarrollado por     : Javier Flores A.           --*/      
/*---Fecha Creaci©n       : 18/08/1999                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi©n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     :  Denis Villacr's           --*/      
/*---Fecha Modificaci©n   :  06/07/2000                --*/       
/*---Detalle Modificaci©n :  Select a TTTIES_DOCU para --*/      
/*---                       el Update al CO_ESTA_DOCU --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 2 por     :  DCH   --*/      
/*---Fecha Modificaci©n   :  14/03/2002                --*/       
/*---Detalle Modificaci©n :  Permitir Canje de Letras  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 3 por     :  DCH   --*/      
/*---Fecha Modificaci©n   :  15/03/2002                --*/       
/*---Detalle Modificaci©n :  GRabar el ST_CIER_DOCU  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 4 por     : Maribel Julca Rodriguez    --*/      
/*---Fecha Modificaci«n   : 21/04/2005                 --*/       
/*---Detalle Modificaci«n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 5 por     :  MEC           --*/      
/*---Fecha Modificaci©n   :  18/10/2007                --*/       
/*---Detalle Modificaci©n :  Act, Estados Docs correct --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TCCANJ_PROV_I02                      --*/      
/*---Grant Execute on SP_TCCANJ_PROV_I02 to public     --*/       
/*---SP_TCCANJ_PROV_I02                                --*/      
/*-------------------------------------------------------*/      
 @ISCO_EMPR      TD_VC_002,       
 @ISCO_USUA_MODI TD_VC_008_USUA,      
 @ISCO_PROV      TD_VC_020,      
 @ISCO_UNID_CNTB TD_VC_003,      
 @IDFE_CANJ  TD_DT_001,      
 @ISCO_TIPO_DOCU TD_VC_003,      
 @ISNU_DOCU_PROV TD_VC_020,      
 @ISNU_CANJ      TD_VC_008,      
 @INNU_SECU_CANJ TD_IN_001,      
 @INIM_DOCU   TD_NU_016_004,      
 @INIM_SALD_DOCU TD_NU_016_004,      
 @INIM_SALD_CONV TD_NU_016_004,      
 @INIM_CANJ_MCAN TD_NU_016_004,      
 @INIM_CANJ_MDOC TD_NU_016_004,      
 @ISCO_ESTA_ORIG TD_VC_003    
 As    
Declare      
 @VSCO_ESTA_DOCU TD_VC_003,      
 @VSCO_DOCU_LETR TD_VC_003,       
 @VSTI_DOCU_CDET TD_VC_003,       
 @VSTI_DOCU_CRET TD_VC_003,       
 @VSST_CIER_DOCU TD_VC_001      
      
 Begin Tran SP_TCCANJ_PROV_I02      
      
 Select @VSCO_DOCU_LETR = Null      
   
 Exec SP_TTDOCU_CNTB_Q01 6, @VSCO_DOCU_LETR OutPut      
   
 Exec SP_TTDOCU_CNTB_Q01 22, @VSTI_DOCU_CRET OutPut      
   
 Exec SP_TTDOCU_CNTB_Q01 23, @VSTI_DOCU_CDET OutPut      

 IF @VSTI_DOCU_CRET IS NULL
	SELECT @VSTI_DOCU_CRET = ''
 
 IF @VSTI_DOCU_CDET IS NULL
	SELECT @VSTI_DOCU_CDET = ''
   
 Exec SP_TTTIES_DOCU_Q01 3,    
 @VSCO_ESTA_DOCU OutPut      
   
 IF @INIM_SALD_CONV > @INIM_CANJ_MCAN      
 Begin      
  SELECT @VSCO_ESTA_DOCU = @ISCO_ESTA_ORIG      
  SELECT @VSST_CIER_DOCU = 'N'      
 End      
 Else      
  Select @VSST_CIER_DOCU = 'S'      
   
   
 Insert Into TDCANJ_PROV (CO_EMPR, CO_UNID_CONC, CO_PROV, NU_CANJ, FE_CANJ, NU_SECU_CANJ,      
 NU_ORDE_LETR, NU_LETR_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,       
 IM_DOCU, IM_SALD_DOCU, IM_SALD_CONV,       
 IM_CANJ_MCAN, IM_CANJ_MDOC, ST_CIER_DOCU, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ESTA_ORIG)      
 Values     (@ISCO_EMPR, @ISCO_UNID_CNTB, @ISCO_PROV, @ISNU_CANJ, @IDFE_CANJ, @INNU_SECU_CANJ, NULL,      
 NULL, @ISCO_TIPO_DOCU, @ISNU_DOCU_PROV, @INIM_DOCU,       
 @INIM_SALD_DOCU, @INIM_SALD_CONV, @INIM_CANJ_MCAN, @INIM_CANJ_MDOC,       
 @VSST_CIER_DOCU, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_ESTA_ORIG )      
   
 If @@error <> 0      
 Begin      
  Rollback tran      
  Return      
 End          
   

   
 If @VSCO_DOCU_LETR != @ISCO_TIPO_DOCU       
 Begin      
  If @ISCO_TIPO_DOCU != @VSTI_DOCU_CRET And @ISCO_TIPO_DOCU != @VSTI_DOCU_CDET  
   Update TMDOCU_PROV       
   Set  CO_ESTA_DOCU =  @VSCO_ESTA_DOCU,      
     NU_CANJ = @ISNU_CANJ,      
     IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,      
     CO_USUA_MODI = @ISCO_USUA_MODI,       
     FE_USUA_MODI = Getdate()      
    Where  CO_EMPR = @ISCO_EMPR       
   And CO_PROV = @ISCO_PROV       
   And CO_TIPO_DOCU = @ISCO_TIPO_DOCU       
   And NU_DOCU_PROV = @ISNU_DOCU_PROV      
  Else If @ISCO_TIPO_DOCU = @VSTI_DOCU_CDET    
   Update TMDOCU_PROV       
   Set  CO_ESTA_DOCU =  'ACT',       
     NU_CANJ = @ISNU_CANJ,      
     DE_OBSE = 'DETRACCION',    
     CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = Getdate()      
   Where  CO_EMPR = @ISCO_EMPR       
   And    CO_PROV = @ISCO_PROV       
   And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU       
   And    NU_DOCU_PROV = @ISNU_DOCU_PROV      
  Else      
   Update TMDOCU_PROV       
   Set  CO_ESTA_DOCU =  'ACT',       
     NU_CANJ = @ISNU_CANJ,      
     CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = Getdate()      
   Where  CO_EMPR = @ISCO_EMPR       
   And    CO_PROV = @ISCO_PROV       
   And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU       
   And    NU_DOCU_PROV = @ISNU_DOCU_PROV      
     
 End      
 Else      
  Update TMLETR_PROV       
  Set  CO_ESTA_DOCU =  @VSCO_ESTA_DOCU,      
    NU_CANJ = @ISNU_CANJ,      
    IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,      
    CO_USUA_MODI = @ISCO_USUA_MODI,       
    FE_USUA_MODI = Getdate()      
  Where  CO_EMPR = @ISCO_EMPR  
  And CO_PROV = @ISCO_PROV  
  And NU_LETR_PROV = @ISNU_DOCU_PROV  
   
 If @@error <> 0  
 Begin  
  Rollback tran  
  Return  
 End  
      
Commit Tran      
  
/*------------------------- Fin ------------------------------*/


GO
